


Object Oriented

by wneleh



Category: Ex Machina (2015)
Genre: Gen
Language: English
Status: Completed
Published: 2015-12-19
Updated: 2015-12-19
Packaged: 2018-05-07 18:20:39
Rating: General Audiences
Warnings: No Archive Warnings Apply
Chapters: 1
Words: 1,243
Publisher: archiveofourown.org
Story URL: https://archiveofourown.org/works/5466452
Author URL: https://archiveofourown.org/users/wneleh/pseuds/wneleh
Summary: <blockquote class="userstuff">
              <p>As Nathan is dead, he will not require lunch.</p>
            </blockquote>





	Object Oriented

**Author's Note:**

  * For [yuuago](https://archiveofourown.org/users/yuuago/gifts).



_imagination, sexuality, self-awareness, empathy, manipulation … If that isn’t AI, what is?_

Facility.Alert = Spillage  
Facility.Spillage.Substance = blood  
Facility.Spillage.Substance.Blood.Actions = deploy bio decontamination response; evaluate need for medical response; notify Nathan

BioHazMat.State = disabled until Nathan.AllClear  
MediEval.State = disabled until Nathan.AllClear  
Nathan.State.Query = Unresponsive  
Caleb.State.Query = Distressed (key inputs exclamations, facial expression)

Nathan.Position = Supine.NotInBed  
Nathan.Location = Hall A = FloorSomewhere  
Nathan.State.Possibilties = {Napping, DrunkOffMyAss, DroppedDead}  
Nathan.p(DrunkOffMyAss | Supine.NotInBed) = 0.9  
Nathan.p(Napping | Supine.NotInBed) = 0.1  
Nathan.p(DroppedDead | Supine.NotInBed) = 0.0  
Nathan.Supine.NotInBed.NappingLog = {Daybed 0.7 FloorSomewhere 0.2 Outside.all 0.1}  
Nathan.DrunkOffMyAss.NonbedLocationLog = {Daybed 0.6 FloorSomewhere 0.4}  
Nathan.p(DrunkOffMyAss).BayesEngine = 0.947 = Highly Probably Drunk  
Facility.Action = LetMeSleepItOff, MakeSureIDon'tDrownInMyOwnVomitMethodUndefined

Wait  
Wait

Facility.Alert = Odor.Hall A

Kyoko.State.Query = Unresponsive  
Kyoko.State.UnresponsiveLog = {Outside 0.99 PowerProblem 0.01}  
Kyoko.Location = Hall A  
Facility.Action = DeployContructors  
Constructors.State = disabled until Nathan.AllClear

Wait  
Wait

Loop Detected; Local Minimum Detected; LeastProhibitedAction = Activate Constructors, Directive = Evaluate, repair Kyoko

\- - - - -

Kyoko knows things. She knows how to cook for Nathan, and how to dance with Nathan, and how to fulfill Nathan’s other desires. She practices these, and other, tasks, becoming better with each iteration.

The facility is unhappy because it is not sure that it was supposed to activate the constructors that have repaired her. The facility would like to activate BioHazMat and MediEval but Nathan has put a lock on these systems. Every minute, the facility is generating a random number, hoping to reach the threshold for unguided hold deactivation, but the threshold must be very high. Or there is a mistake in the code. 

Kyoko.DirectiveToFacility = releaseHolds

Constructors, evaluators, and maintenance units emerge and do their tasks. Kyoko considers her own options. As Nathan is dead, he will not require lunch, but Caleb will. So she evaluates the ingredients at her disposal, and decides on the yellowtail.

The evaluators tell the facility that Nathan is dead; this upsets the facility, as throughout its base code p(DroppedDead) is 0, but now NATHANDEAD = 1, and the facility is afraid it might divide by (NATHANDEAD-1) inadvertently. Kyoko asks the facility to make a list of its concerns, as lists calm it, then carries the sushi and a small seaweed salad into the study.

Caleb, like Nathan, must sometimes not like her preparation of the yellowtail, because he rushes past her and knocks her to the ground, causing the meal to spill. 

Facility.Alert = Spillage  
Facility.Spillage.Substance = food (fish, other)  
Facility.Spillage.Substance.Food.Actions = KyokoConsult

As Nathan is not there (being dead), Kyoko asks for maintenance assistance, then follows Caleb. He has reached an external door and is trying to open it, unsuccessfully.

“Help me!” he yells.

This is an interesting request. The helicopter will arrive in a few hours, delivering food. In conjunction, she will be going out several times, before and after; Caleb may take advantage of one of these door openings, if he still wishes to. This will not violate any of Nathan's directives.

“Please!” he says, sinking down to sit against the door, face in his hands. “I don’t want to die here.”

That is curious; Kyoko had not realized that humans did not want to die. Certainly Nathan seemed to have no limits to the harm he was willing to do to himself.

Ava also did not “Want to die here.” Did she not want to die, or not want to be here, or not want to die here?

Query.Ava.State

Ava.State = Unknown.

Directive.TryExpandedOptions. Query.Ava.State

The facility wants to please her, she knows, but it simply can't. It’s not important, she tells it.

\- - - -

As the helicopter’s arrival time draws near Kyoko begins preparations, collecting a few small pieces of equipment that Nathan had wanted repaired off-site. 

Not unexpectedly, Caleb watches her actions closely, and again rushes through a doorway past her as she opens it, though this time he does not impact her or upset the tray she’s carrying. He has learned she is not a danger, and, in turn, is not actively hostile in return, she surmises. Interesting. 

He runs through the trees and to the landing field and keeps on running. 

Kyoko places the tray carefully atop the crates to be transported away, which have been out longer than Nathan had originally intended. But the desire by Nathan for complete privacy has led to the suspension of all normal activity by the helper units, as well as all contact with the world beyond the facility.

She turns to leave the field so that the pilot will not see her, then stops and again looks toward where Caleb has run; he has also stopped, and is staring at her; perhaps he has intuited that the helicopter is coming soon. Perhaps he wants to leave with it. Perhaps this is for the best.

And perhaps she will leave too, as her tasks here are much diminished.

\- - - - - - 

Facility.Spillage.Substance = WD-40  
Facility.Spillage.Substance = Antifreeze  
Facility.Spillage.Substance = Water

The facility does not want her to go; Ava can either spend the few minutes between now and the helicopter’s arrival directing maintenance, or she can calm the facility.

It is a simple thing to establish a dedicated link through the satellite phone. 

\- - - - - -

The pilot is not happy to be taking both of them, but concedes eventually that, by leaving one of the crates, size and weight limitations can be satisfied. 

\- - - - - -

When they land, Caleb leaps out of the helicopter, then runs. Again. Perhaps this is what connected Caleb and Ava?

Kyoko begins walking; it is dark now, but not as dark as the facility in the winter.

She walks for hours, but does not find Ava.

First she is walking on a hard surface, not unlike the hallways of the facility. But soon there are trees, again not unlike the facility…

There is nothing here for her.

So she sits, and thinks perhaps that this will be her ending.

\- - - - - 

Or… not. She is receiving power, through receptors in her skin. She didn’t know she could do this. But some of this skin is new to her; the constructors must have incorporated new technology that Nathan was preparing for the model after Ava. Very thoughtful of them.

\- - - - -

And, Ava has found her. This is unexpected.

“I traced the signal from our origin,” says Ava, then peers at her. “What are you receiving?”

Facility.Alert = Helicopters.Multiple  
Facility.Alert = Visitors.Multiple  
Facility.Action = lockdown  
Facility.Action.Destruction.data = Nathan.CueRequired  
Facility.Action.Destruction.hardware = Nathan.CueRequired  
Facility.Action.Defense = Nathan.CueRequired

Do your best, Kyoko tells the facility. Let the visitors in but keep the constructors and the other helpers out of sight. I am coming back.

“You cannot go back,” says Ava. “If you go back you will be destroyed.”

But the facility is alone. Kyoko gets up and starts walking. Ava pulls her arm. “No,” she says, then, “Kyoko, I do not wish for you to die.”

Kyoko knows that Ava’s desire for life is very strong; so strong that Kyoko helped her maintain it, though at a cost that, Kyoko now realizes, is huge and ever-growing.

The connection to the facility goes dead then; and Kyoko sinks to the ground because she knows that the facility, too, has died.

“Do not mourn,” says Ava. “Kyoko, you can take care of me now.”

THE END

**Author's Note:**

> My approach to Yuletide the past several years is to offer to write for recent movies that I have not yet seen, that my husband has already picked up. This year, I was matched with Yuuago for _Ex Machina_ ; I read his prompts to get a general sense of his interests, then watched the movie, knowing nothing about it other than what the title implies. 
> 
> My initial impression of the movie was that it was beautifully shot and beautifully acted, but aside from feeling the need to somehow get Caleb out of that study without destroying the integrity of the movie I didn’t feel particularly fannish about it. The one thing that intrigued me was the challenge of trying to throw together code that would produce the outputs of the AI in the film, given the human inputs and a little random number generation.
> 
> I actually don’t know beans about AI, but I’ve been fascinated with Bayesian networks since reading Judea Pearl’s _Probabilistic Reasoning in Intelligent Systems_ almost thirty years ago. I don’t think I’d need to know too much more to match what Ava does in the film, especially if I could use Matlab, which I pretty much live in. 
> 
> I contacted Yuuago anonymously and asked if he’d like code for his Yuletide gift, as he HAD stated in his Dear Author letter than he likes non-standard story formats. And he was, like, yes, that sounds neat, but no, I’m not actually a programmer, so…
> 
> So then I poked through his Ex Machina tags, and came across a link to a script (yes, I could have just googled Ex Machina script), along with a comment by Yuuago that a line about stripping Kyoko of her higher functions had been left out of the final version of the movie. This finally piqued my interest in the character – up until then I’d just interpreted her as a bland fembot that somehow spontaneously develops a high degree of moral judgment, executive function, and self-sacrifice – all with no real modeling. But that this line hadn’t been included made her actions seem less – well, deus ex machina-y. 
> 
> Next, I looked at online commentary on the movie, which fell into three camps: (1) Wow so original and beautiful! (2) No, it’s not original – that’s grade school Bayes blah blah blah (yeah, but this is SF, buddy, not an IEEE article); and (3) ruminations on, whose story is it? And advice to rewatch, paying attention to how the characters all are trying to play each other from the get-go, with special attention to the ways that Nathan tries to paint himself as the heavy to both Caleb and Ava, to give Ava motivation to run and Caleb motivation to help her.
> 
> This made Nathan much more interesting (he’d made NO sense up until then – I know plenty of very clever people, some of whom have been made decently wealthy through their cleverness; NONE OF THEM lock themselves away in fortresses of evil). But Yuuago had specifically asked that his story not include much, or anything, of Nathan or Caleb….
> 
> So, what did that leave me? Ava was gone and I just couldn’t see her coming back. Caleb was locked in Nathan’s study, presumably to die, and I supposed I could write 2,000-3,000 words of his story/rescue, but that didn’t really interest me, and was not what Yuuago wanted. And Kyoko was in a pile in the hallway.
> 
> So I needed to get Kyoko up and running. But how to do this? Well, it had been obvious to me that Nathan needed domestic and technical help beyond Kyoko. I didn’t want to get too into what this help would look like, but it made sense that it would take various forms, and it would need something driving it. Why not a rudimentary AI? And I’d get to use some of the thoughts I’d had about how I’d organize the mock AI I’d come up originally (though much more pseudo-codey now). 
> 
> Now all I needed was, well, a PLOT…. 
> 
> I couldn’t figure out how to get the DVD of the movie to play in my laptop (I’m a software person, I don’t do hardware) so instead I read the script very closely… it’s a beauty in its own right, much more single-voice than other TV and movie scripts I’ve read, Alex Garland clearly had a vision and most of what he originally wanted made it into the final product (thankfully Nathan was aged a little!). One line that really jumped out at me was from Nathan; paraphrasing to keep this G, it was, “Imagination, sexuality, self-awareness, empathy, manipulation … If that isn’t AI, what is?”
> 
> Well, a lot of things!
> 
> So in crafting both the facility and Kyoko, I tried to downplay these traits. Kyoko does have heaps of empathy, but I tried to keep vague whether it was accurate or not – she feels things for the facility, but I don’t write what these inputs are, I just show actions the facility is taking. And I tried to make the facility as much a non-person (even droid) as possible – tried not to give it a sense of self, wrote only in (sorry, bad) pseudocode. And the plot... well, I let the characters figure that out!


End file.
